<?php
namespace Admin\Controller;
use Admin\Controller\AiController;
class RoleController extends AiController {
   public function index(){
       $info = D('Role')->select();
       $this -> assign('info',$info);
       $this -> display();
   }
   
   public function add(){
       if(IS_POST){
           $data['role_name'] = I('role_name');
           $res = D('Role')->add($data);
           if($res){
               $this->success('角色添加成功');
           }else{
               $this->error('角色添加失败');
           }
       }else{
           $this->display('form');
       }
   }
   
   public function distribute($role_id){
        if(!empty($_POST)){
            //利用RoleModel模型里边的一个专门方法实现权限分配
            $role = D('Role');
            //saveAuth接收到一维数组信息
            $z = $role -> saveAuth(I('authname'), $role_id);
            if($z){
                $this -> success('分配权限成功！');
            } else {
                $this -> error('分配权限失败！');
            }
        } else {
            //根据$role_id查询对应的角色名字
            $rinfo = D("Role")->getByRole_id($role_id);
            $this -> assign('role_name', $rinfo['role_name']);

            //查询全部的权限信息，放入模板显示并进行权限分配
            $pauth_info = D('Auth')->where('auth_level=0')->select(); //父级权限
            $sauth_info = D('Auth')->where('auth_level=1')->select(); //次父级权限
            $tauth_info = D('Auth')->where('auth_level>=2')->select(); //次次父级权限

            //把当前角色对应的权限信息给查询出来
            $authinfo = D("Role")->getByRole_id($role_id);
            $auth_ids_arr = explode(',',$authinfo['role_auth_ids']); //数组auth_id 信息
            
            $this -> assign('auth_ids_arr', $auth_ids_arr);
            $this -> assign('pauth_info',$pauth_info);
            $this -> assign('sauth_info',$sauth_info);
            $this -> assign('tauth_info',$tauth_info);

            $this -> display();
        }
   }
   
   public function edit(){
       if(IS_POST){
           $role_id = I('role_id',0,'intval');
           $role_name = I('role_name','','trim');
           $res = M('Role')->where(array('role_id'=>$role_id))->setField('role_name',$role_name);
           if($res)
               $this->success('编辑成功',U('Role/index'));
           else
               $this->error('编辑失败');
       }else{
           $role_id = I('role_id',0,'intval');
           $res = M('Role')->where(array('role_id'=>$role_id))->find();
           $this->assign('vo',$res);
           $this->display('form');
       }
       
   }
   
   /**
    * 删除权限
    * {@inheritDoc}
    * @see \ZlAdmin\Controller\AiController::del()
    */
   public function del(){
       $role_id = I('role_id',0,'intval');
       $res = M('Role')->where(array('role_id'=>$role_id))->delete();
       if($res)
           $this->success('删除成功');
       else
           $this->error('删除失败');
   }
}

